/**
 *
 */
package com.ph.shopping.facade.mapper;

import com.alibaba.dubbo.config.annotation.Service;
import com.ph.shopping.common.core.base.BaseMapper;
import com.ph.shopping.facade.merchant.entity.Merchant;
import com.ph.shopping.facade.merchant.entity.MerchantImage;
import com.ph.shopping.facade.merchant.entity.UserBalance;
import com.ph.shopping.facade.merchant.entity.UserBalanceRecord;
import com.ph.shopping.facade.merchant.vo.CommunityVo;
import com.ph.shopping.facade.merchant.vo.MerchantDetaileVo;
import com.ph.shopping.facade.merchant.vo.PositionVo;
import com.ph.shopping.facade.merchant.vo.UserBalanceRecordVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * @项目：phshopping-service-merchant
 * @描述：商户接口实现
 * @作者： 舒豪
 * @创建时间：2017年3月13日
 * @Copyright @2017 by 舒豪
 */
@Component
@Service(version = "1.0.0")
public interface AgentMerchantMapper extends BaseMapper<Merchant> {
    /**
     * 商户id获取商户信息
     *
     * @param merchant
     * @return
     */
    public MerchantDetaileVo detaileMerchant(Merchant merchant);

    /**
     * 商户id获取商户图片 需要商户id 图片类型
     *
     * @param map
     * @return
     */
    public List<MerchantImage> merchantImageByMerchantID(Map<String, Object> map);

    /**
     * 所有的位置
     *
     * @return
     */
    public List<PositionVo> getAllPosition(@Param("pid") String pid);

    /**
     * 商户列表
     */
    public List<MerchantDetaileVo> getMerchantList(Merchant merchant);

    /**
     * 新增商户
     */
    public void addMerchant(Merchant merchant);

    /**
     * 新增商户图片
     */
    public void addMerchantImage(List<MerchantImage> list);

    /**
     * 删除商户图片
     */
    public void deteleMerchantImage(Long id);

    /**
     * 修改商户状态
     */
    public void updateMerchatStatues(Merchant merchant);

    /**
     * 通过id获取社区
     */
    public List<CommunityVo> getCommunityByCountyId(Merchant merchant);

    /**
     * 通过id获取社区
     */
    public MerchantDetaileVo getMerchantDetailForUpdate(Merchant merchant);

    /**
     * 查询商户 供应商  代理 的余额
     */
    public UserBalance getUserBalance(UserBalance userBalance);

    /**
     * 通过商户id获取商户信息
     */
    public Merchant getMerchantById(Merchant merchant);

    /**
     * 修改商户 供应商 余额
     */
    public int updateUserBalance(UserBalance userBalance);

    /**
     * 插入余额流水记录表
     */
    public int insertUserBalanceRecord(UserBalanceRecord userBalanceRecord);

    /**
     * 获取供应链和线下订单的记录----来源ph_user_balance_record表
     *
     * @param userBalanceVo
     */
    public List<UserBalanceRecordVo> getUserBalanceRecordVoList(UserBalanceRecordVo userBalanceRecordVo);

    /**
     * 获取充值和线上订单记录----来源ph_member_charge_record表排除供应链的类型
     *
     * @param userBalanceVo
     */
    public List<UserBalanceRecordVo> getUserChargeRecordVoList(UserBalanceRecordVo userBalanceRecordVo);

    /**
     * 新增商户的余额账户默认给他余额设置为0  ph_user_balance
     *
     * @param merchant
     * @return
     */
    public int addMerchantBalance(Merchant merchant);
}
